package com.transaction.manage.model.dto;

import javax.persistence.Column;
import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable;
import java.util.Date;

@Table(name = "non_resident_cfm")
public class NonResidentCfm implements Serializable {
    @Id
    private Integer id;

    /**
     * 渠道编码
     */
    @Column(name = "channel_code")
    private String channelCode;

    /**
     * 处理日期
     */
    @Column(name = "handle_date")
    private String handleDate;

    /**
     * 申请单编号
     */
    @Column(name = "app_sheet_serial_no")
    private String appSheetSerialNo;

    /**
     * 交易发生日期
     */
    @Column(name = "transaction_date")
    private String transactionDate;

    /**
     * 交易确认日期
     */
    @Column(name = "transaction_cfm_date")
    private String transactionCfmDate;

    /**
     * TA确认交易流水号
     */
    @Column(name = "ta_serial_no")
    private String taSerialNo;

    /**
     * 交易处理返回代码
     */
    @Column(name = "return_code")
    private String returnCode;

    /**
     * 出错详细信息
     */
    @Column(name = "error_detail")
    private String errorDetail;

    /**
     * 预留字段1
     */
    @Column(name = "reserved_field1")
    private String reservedField1;

    /**
     * 预留字段2
     */
    @Column(name = "reserved_field2")
    private String reservedField2;

    /**
     * 预留字段3
     */
    @Column(name = "reserved_field3")
    private String reservedField3;

    private Date utime;

    /**
     * 流程步骤过程记录
     */
    @Column(name = "flow_step")
    private String flowStep;

    private static final long serialVersionUID = 1L;

    public NonResidentCfm(String channelCode, String handleDate) {
        this.channelCode = channelCode;
        this.handleDate = handleDate;
    }

    /**
     * @return id
     */
    public Integer getId() {
        return id;
    }

    /**
     * @param id
     */
    public void setId(Integer id) {
        this.id = id;
    }

    /**
     * 获取渠道编码
     *
     * @return channel_code - 渠道编码
     */
    public String getChannelCode() {
        return channelCode;
    }

    /**
     * 设置渠道编码
     *
     * @param channelCode 渠道编码
     */
    public void setChannelCode(String channelCode) {
        this.channelCode = channelCode == null ? null : channelCode.trim();
    }

    /**
     * 获取处理日期
     *
     * @return handle_date - 处理日期
     */
    public String getHandleDate() {
        return handleDate;
    }

    /**
     * 设置处理日期
     *
     * @param handleDate 处理日期
     */
    public void setHandleDate(String handleDate) {
        this.handleDate = handleDate == null ? null : handleDate.trim();
    }

    /**
     * 获取申请单编号
     *
     * @return app_sheet_serial_no - 申请单编号
     */
    public String getAppSheetSerialNo() {
        return appSheetSerialNo;
    }

    /**
     * 设置申请单编号
     *
     * @param appSheetSerialNo 申请单编号
     */
    public void setAppSheetSerialNo(String appSheetSerialNo) {
        this.appSheetSerialNo = appSheetSerialNo == null ? null : appSheetSerialNo.trim();
    }

    /**
     * 获取交易发生日期
     *
     * @return transaction_date - 交易发生日期
     */
    public String getTransactionDate() {
        return transactionDate;
    }

    /**
     * 设置交易发生日期
     *
     * @param transactionDate 交易发生日期
     */
    public void setTransactionDate(String transactionDate) {
        this.transactionDate = transactionDate == null ? null : transactionDate.trim();
    }

    /**
     * 获取交易确认日期
     *
     * @return transaction_cfm_date - 交易确认日期
     */
    public String getTransactionCfmDate() {
        return transactionCfmDate;
    }

    /**
     * 设置交易确认日期
     *
     * @param transactionCfmDate 交易确认日期
     */
    public void setTransactionCfmDate(String transactionCfmDate) {
        this.transactionCfmDate = transactionCfmDate == null ? null : transactionCfmDate.trim();
    }

    /**
     * 获取TA确认交易流水号
     *
     * @return ta_serial_no - TA确认交易流水号
     */
    public String getTaSerialNo() {
        return taSerialNo;
    }

    /**
     * 设置TA确认交易流水号
     *
     * @param taSerialNo TA确认交易流水号
     */
    public void setTaSerialNo(String taSerialNo) {
        this.taSerialNo = taSerialNo == null ? null : taSerialNo.trim();
    }

    /**
     * 获取交易处理返回代码
     *
     * @return return_code - 交易处理返回代码
     */
    public String getReturnCode() {
        return returnCode;
    }

    /**
     * 设置交易处理返回代码
     *
     * @param returnCode 交易处理返回代码
     */
    public void setReturnCode(String returnCode) {
        this.returnCode = returnCode == null ? null : returnCode.trim();
    }

    /**
     * 获取出错详细信息
     *
     * @return error_detail - 出错详细信息
     */
    public String getErrorDetail() {
        return errorDetail;
    }

    /**
     * 设置出错详细信息
     *
     * @param errorDetail 出错详细信息
     */
    public void setErrorDetail(String errorDetail) {
        this.errorDetail = errorDetail == null ? null : errorDetail.trim();
    }

    /**
     * 获取预留字段1
     *
     * @return reserved_field1 - 预留字段1
     */
    public String getReservedField1() {
        return reservedField1;
    }

    /**
     * 设置预留字段1
     *
     * @param reservedField1 预留字段1
     */
    public void setReservedField1(String reservedField1) {
        this.reservedField1 = reservedField1 == null ? null : reservedField1.trim();
    }

    /**
     * 获取预留字段2
     *
     * @return reserved_field2 - 预留字段2
     */
    public String getReservedField2() {
        return reservedField2;
    }

    /**
     * 设置预留字段2
     *
     * @param reservedField2 预留字段2
     */
    public void setReservedField2(String reservedField2) {
        this.reservedField2 = reservedField2 == null ? null : reservedField2.trim();
    }

    /**
     * 获取预留字段3
     *
     * @return reserved_field3 - 预留字段3
     */
    public String getReservedField3() {
        return reservedField3;
    }

    /**
     * 设置预留字段3
     *
     * @param reservedField3 预留字段3
     */
    public void setReservedField3(String reservedField3) {
        this.reservedField3 = reservedField3 == null ? null : reservedField3.trim();
    }

    /**
     * @return utime
     */
    public Date getUtime() {
        return utime;
    }

    /**
     * @param utime
     */
    public void setUtime(Date utime) {
        this.utime = utime;
    }

    /**
     * 获取流程步骤过程记录
     *
     * @return flow_step - 流程步骤过程记录
     */
    public String getFlowStep() {
        return flowStep;
    }

    /**
     * 设置流程步骤过程记录
     *
     * @param flowStep 流程步骤过程记录
     */
    public void setFlowStep(String flowStep) {
        this.flowStep = flowStep == null ? null : flowStep.trim();
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", id=").append(id);
        sb.append(", channelCode=").append(channelCode);
        sb.append(", handleDate=").append(handleDate);
        sb.append(", appSheetSerialNo=").append(appSheetSerialNo);
        sb.append(", transactionDate=").append(transactionDate);
        sb.append(", transactionCfmDate=").append(transactionCfmDate);
        sb.append(", taSerialNo=").append(taSerialNo);
        sb.append(", returnCode=").append(returnCode);
        sb.append(", errorDetail=").append(errorDetail);
        sb.append(", reservedField1=").append(reservedField1);
        sb.append(", reservedField2=").append(reservedField2);
        sb.append(", reservedField3=").append(reservedField3);
        sb.append(", utime=").append(utime);
        sb.append(", flowStep=").append(flowStep);
        sb.append(", serialVersionUID=").append(serialVersionUID);
        sb.append("]");
        return sb.toString();
    }
}